//
//  BaseTableViewController.m
//  CoachsBook
//
//  Created by huiyong li on 2022/8/18.
//

#import "BaseTableViewController.h"


@interface BaseTableViewController ()<UITableViewDelegate,UITableViewDataSource>

@end

@implementation BaseTableViewController


-(NSMutableArray *)dataArray
{
    if (!_dataArray) {
        _dataArray = [NSMutableArray array];
    }
    return _dataArray;
}

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
}


- (void)setupUI {
    [super setupUI];
    [self.view addSubview:self.tableView];
    self.refreshState = JKRefreshStateNo;
}


- (void)setRefreshState:(JKRefreshState)refreshState {
    _refreshState = refreshState;
    [self updateRefreshState];
}

- (void)updateRefreshState {
    switch (self.refreshState) {
        case JKRefreshStateNo: {
            self.tableView.mj_header = nil;
            break;
        }
        case JKRefreshStateIdel: {
            if (self.tableView.mj_header != nil) {
                [self.tableView.mj_header endRefreshing];
                return;
            }

            __weak typeof(self) weakSelf = self;
            MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
                self.offset = 1;
                [self.dataArray  removeAllObjects];
                [weakSelf getData];
            }];
            self.tableView.mj_header = header;
            self.tableView.mj_header.automaticallyChangeAlpha = YES;
            break;
        }
        case JKRefreshStateLoading: {
            
            if (self.tableView.mj_header != nil) {
                [self.tableView.mj_header endRefreshing];
                return;
            }
            if (self.tableView.mj_footer) {
                [self.tableView.mj_footer endRefreshing];
            }
            __weak typeof(self) weakSelf = self;
            MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
                self.offset = 1;
                [weakSelf.dataArray  removeAllObjects];
                [weakSelf getData];
            }];
            self.tableView.mj_header = header;
            self.tableView.mj_header.automaticallyChangeAlpha = YES;
            
            self.tableView.mj_footer = [MJRefreshBackNormalFooter footerWithRefreshingBlock:^{
                self.offset = self.offset+1;
                [weakSelf getData];
            }];
            break;
        }
        case JKRefreshStateFinish: {
            if (self.tableView.mj_header) {
                [self.tableView.mj_header endRefreshing];
            }
            if (self.tableView.mj_footer) {
                [self.tableView.mj_footer endRefreshing];
            }
            break;
        }
        default:
            break;
    }
}


#pragma mark -- 懒加载
- (UITableView *)tableView {
    if (!_tableView) {
        _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];
        _tableView.backgroundColor = rgba(255, 255, 255, 1);
        _tableView.delegate = self;
        _tableView.dataSource = self;
        _tableView.userInteractionEnabled = YES;
        _tableView.showsVerticalScrollIndicator = false;
        _tableView.showsHorizontalScrollIndicator = false;
        _tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
        _tableView.estimatedRowHeight = 44;
        _tableView.sectionHeaderHeight = 0;
        _tableView.sectionFooterHeight = 0;
        _tableView.rowHeight = UITableViewAutomaticDimension;
        [_tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"UITableViewCell"];
    }
    return _tableView;
}

#pragma mark - UITableViewDelegate,UITableViewDataSource
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return 0;
}

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
    return 0.01;
}

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
    return [UIView new];
}

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
    return 0.01;
}

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
    return [UIView new];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"UITableViewCell" forIndexPath:indexPath];
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
    return cell;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

}

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    
}

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
    return NO;
}

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
    return UITableViewCellEditingStyleDelete;
}

- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath {
    return @"删除";
}

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
    
}


@end
